home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / DEMONSTR / ATEASY_1.ZIP / ATEASY.MS_ / ATEASY.MS
Text File  |  1993-07-25  |  36KB  |  1,025 lines

  1. '**************************************************************************
  2. '
  3. '    PROGRAM    : ATEASY Setup
  4. '
  5. '    MODULE     : ateasy.mst
  6. '
  7. '    PROGRAMMER : Ronnie Yazma
  8. '
  9. '    PURPOSE    : ATEasy setup script file.
  10. '
  11. '    Copyright (c) 1993 GEOTEST Inc. All Rights Reserved.
  12. '
  13. '**************************************************************************
  14.  
  15. '$DEFINE DEBUG  ''Define for script development/debugging
  16. '$INCLUDE 'setupapi.inc'
  17. '$INCLUDE 'msdetect.inc'
  18.  
  19. DECLARE SUB MessageBeep LIB "User" (hwnd%)
  20.  
  21. ''Dialog ID's
  22. CONST IDD_ASKQUIT      = 200
  23. CONST IDD_DESTPATH     = 300
  24. CONST IDD_EXITFAILURE  = 400
  25. CONST IDD_EXITQUIT     = 600
  26. CONST IDD_EXITSUCCESS  = 700
  27. CONST IDD_EXITDEMO     = 800
  28. CONST IDD_APPHELP      = 900
  29. CONST IDD_UPGRADE      = 1000
  30. CONST IDD_DRIVERS      = 1100
  31. CONST IDD_EXAMPLES     = 1200
  32. CONST IDD_GPIB         = 1300
  33. CONST IDD_GPIBCEC      = 1400
  34. CONST IDD_GPIBHP       = 1500
  35. CONST IDD_GPIBNI       = 1600
  36. CONST IDD_VXINI        = 1700
  37. CONST IDD_VXI          = 1800
  38. CONST IDD_ASKQUIT1     = 2000
  39. CONST IDD_GETSRCDIR    = 2200
  40. CONST IDD_CUSTINST     = 6200
  41. CONST IDD_TOOBIG       = 6300
  42. CONST IDD_BADPATH      = 6400
  43.  
  44. ''Bitmap ID
  45. CONST LOGO         = 1
  46.  
  47. ''Text list
  48. CONST ID_APP       = 1
  49. CONST ID_DRIVERS   = 2
  50. CONST ID_EXAMPLES  = 3
  51. CONST ID_GPIB      = 4
  52. CONST ID_VXI       = 5
  53. CONST ID_APPDRIVE  = 6
  54. CONST ID_APPCOST   = 7
  55. CONST ID_APPFREE   = 8
  56. CONST ID_WINDRIVE  = 9
  57. CONST ID_WINCOST   = 10
  58. CONST ID_WINFREE   = 11
  59. CONST ID_APPDST    = 12
  60.  
  61. CONST ID_CECIRQ1   = 13
  62. CONST ID_CECPORT1  = 14
  63. CONST ID_CECIRQ2   = 15
  64. CONST ID_CECPORT2  = 16
  65. CONST ID_HPSELCODE1= 17
  66. CONST ID_HPSELCODE2= 18
  67.  
  68.  
  69. GLOBAL szAppDst$        ''Default destination directory.
  70. GLOBAL szDlgDst$        ''Default dlg destination directory.
  71. GLOBAL szDllDst$        ''Default dll destination directory.
  72. GLOBAL szInsDst$        ''Default ins destination directory.
  73. GLOBAL szPrgDst$        ''Default prg destination directory.
  74. GLOBAL szWinDrive$      ''Windows drive letter.
  75. GLOBAL szInf$           ''ATEasy.INF path
  76. GLOBAL szSrcDir$
  77.  
  78. ''Dialog list symbol names
  79. GLOBAL szDlgChecks$           ''"ON" or "OFF" for each chechbox
  80. GLOBAL szDlgTexts$            ''text for each IDC_TEXTx
  81. GLOBAL szAppNeedsDrv$         ''Option list costs per drive
  82. GLOBAL szDrivers$             ''All ATEasy.Drivers keys
  83. GLOBAL szDriversSel$          ''"ON" or "OFF" for each driver.x
  84. GLOBAL szDriversNeedsDrv$     ''Option list costs per drive
  85. GLOBAL szExamples$            ''All ATEasy.Examples keys
  86. GLOBAL szExamplesSel$         ''"ON" or "OFF" for each example.x
  87. GLOBAL szExamplesNeedsDrv$    ''Option list costs per drive
  88. GLOBAL szExtraNeedsDrv$       ''List of extra costs to add per drive
  89. GLOBAL szTmp$
  90. GLOBAL szBigList$             ''List of option files cost calc results (boolean)
  91.  
  92. DECLARE SUB AddOptFilesToCopyList (nMode%)
  93. DECLARE SUB RecalcOptFiles (nMode%)
  94. DECLARE SUB RecalcPath
  95. DECLARE SUB SetDriveStatus
  96. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  97. DECLARE SUB GetCurrentDirectories
  98.  
  99. ''*****************************************************************************
  100. ''                  _INIT
  101. ''*****************************************************************************
  102. _INIT:
  103.     szSrcDir$=GetSymbolValue("STF_SRCDIR")
  104.     i%=SetBeepingMode(1)
  105.     SetAbout "ATEasy Setup", "Version 2.0"
  106.     szCuiDll$ = "mscuistf.dll"            ''custom user interface dll
  107.     szHelpProc$ = "FHelpDlgProc"          ''Help dialog procedure
  108.     SetBitmap szCuiDll$, LOGO
  109.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  110.     IF szInf$ = "" THEN
  111.         szInf$ = GetSymbolValue("STF_CWDDIR") + "ATEASY.INF"
  112.     END IF
  113.     SetTitle GetIniKeyString(szInf$, "Data", """Title""")
  114.     ReadInfFile szInf$
  115.  
  116.     ''*** IDD_CUSTINST list symbols
  117.  
  118.     szDlgChecks$        = "szDlgChecks"
  119.     szDlgTexts$         = "szDlgTexts"
  120.     szAppNeedsDrv$      = "szAppNeedsDrv"
  121.     szDrivers$          = "szDrivers"
  122.     szDriversSel$       = "szDriversSel"
  123.     szDriversNeedsDrv$  = "szDriversNeedsDrv"
  124.     szExamples$         = "szExamples"
  125.     szExamplesSel$      = "szExamplesSel"
  126.     szExamplesNeedsDrv$ = "szExamplesNeedsDrv"
  127.     szExtraNeedsDrv$    = "szExtraNeedsDrv"
  128.     szTmp$              = "szTmp"
  129.     szBigList$          = "szBigList"
  130.  
  131.     ''*** Init lists
  132.  
  133.     FOR i% = 1 TO 5 STEP 1
  134.         AddListItem szDlgChecks$, "OFF"
  135.     NEXT i%
  136.     FOR i% = ID_APP TO ID_HPSELCODE2 STEP 1
  137.         AddListItem szDlgTexts$, ""
  138.     NEXT i%
  139.     FOR i% = 1 TO 26 STEP 1
  140.         AddListItem szAppNeedsDrv$, "0"
  141.         AddListItem szDriversNeedsDrv$, "0"
  142.         AddListItem szExamplesNeedsDrv$, "0"
  143.         AddListItem szExtraNeedsDrv$, "0"
  144.     NEXT i%
  145.     FOR i% = 1 TO 3 STEP 1
  146.         AddListItem szBigList$, ""
  147.     NEXT i%
  148.     MakeListFromSectionKeys szDrivers$, "ATEasy.Drivers"
  149.     FOR i% = 1 TO GetListLength(szDrivers$) STEP 1
  150.         AddListItem szDriversSel$, "ON"
  151.     NEXT i%
  152.     MakeListFromSectionKeys szExamples$, "ATEasy.Examples"
  153.     FOR i% = 1 TO GetListLength(szExamples$) STEP 1
  154.         AddListItem szExamplesSel$, "ON"
  155.     NEXT i%
  156.  
  157.     ''*** Get szWinDrive, szApp and current setup state
  158.  
  159.     szWinDrive$ = UCASE$(MID$(GetWindowsDir(), 1, 1))
  160.     szAppDst$ = szWinDrive$ + ":\ATEASY"
  161.     sz$ = MakePath(GetSymbolValue("STF_SRCDIR"), "ATEASY.EXE")
  162.     sz1$= "ON"
  163.     IF DoesFileExist(sz$, femExist) THEN
  164.         sz1$ = "OFF"
  165.         ReplaceListItem szDlgChecks$, 1, ""
  166.         szAppDst$ = GetSymbolValue("STF_SRCDIR")
  167.     ELSE
  168.         GetLocalHardDrivesList szTmp$
  169.         FOR i% = 1 TO  GetListLength(szTmp$) STEP 1
  170.             sz$ = FindFileInTree("ATEASY.EXE", GetListItem(szTmp$, i%) + ":\")
  171.             IF sz$ <> "" THEN
  172.                 szAppDst$ = MID$(sz$, 1, LEN(sz$) - 11)
  173.                 IF LEN(szAppDst$) = 2 THEN
  174.                     szAppDst$=szAppDst$+"\"
  175.                 ENDIF
  176.                 WHILE 1
  177.                     SetSymbolValue "szDlgInfo", szAppDst$
  178.                     MessageBeep 0
  179.                     sz$ = UIStartDlg(szCuiDll$, IDD_UPGRADE, "FInfoDlgProc", IDD_APPHELP, szHelpProc$)
  180.                     IF sz$ = "CONTINUE" THEN
  181.                         UIPop 1
  182.                         RemoveSymbol "szDlgInfo"
  183.                         EXIT FOR
  184.                     END IF
  185.                     GOSUB _ASKQUIT
  186.                 WEND
  187.             END IF
  188.         NEXT i%
  189.     END IF
  190.     GetCurrentDirectories
  191.  
  192.     ''*** set variables to current state
  193.  
  194.     IF sz1$ <> "OFF" THEN
  195.         FOR i% = ID_APP TO ID_VXI STEP 1
  196.             ReplaceListItem szDlgChecks$, i%, sz1$
  197.         NEXT i%
  198.     END IF
  199.     ReplaceListItem szDlgTexts$, ID_GPIB, "None"
  200.     ReplaceListItem szDlgTexts$, ID_VXI, "None"
  201.     sz$=MakePath(GetWindowsDir(),"ATEASY.INI")
  202.     sz1$="GpibDrv"
  203.     IF DoesIniSectionExist(sz$, sz1$) THEN
  204.         ReplaceListItem szDlgTexts$, ID_CECPORT1, GetIniKeyString(sz$, sz1$, "CECPort1")
  205.         ReplaceListItem szDlgTexts$, ID_CECPORT2, GetIniKeyString(sz$, sz1$, "CECPort2")
  206.         ReplaceListItem szDlgTexts$, ID_CECIRQ1, GetIniKeyString(sz$, sz1$, "CECIrq1")
  207.         ReplaceListItem szDlgTexts$, ID_CECIRQ2, GetIniKeyString(sz$, sz1$, "CECIrq2")
  208.         ReplaceListItem szDlgTexts$, ID_HPSELCODE1, GetIniKeyString(sz$, sz1$, "HPSelectCode1")
  209.         ReplaceListItem szDlgTexts$, ID_HPSELCODE2, GetIniKeyString(sz$, sz1$, "HPSelectCode2")
  210.     ELSE
  211.         ReplaceListItem szDlgTexts$, ID_CECPORT1, "0x2B8"
  212.         ReplaceListItem szDlgTexts$, ID_CECPORT2, "0x2A8"
  213.         ReplaceListItem szDlgTexts$, ID_CECIRQ1,  "7"
  214.         ReplaceListItem szDlgTexts$, ID_CECIRQ2,  "7"
  215.         ReplaceListItem szDlgTexts$, ID_HPSELCODE1, "7"
  216.         ReplaceListItem szDlgTexts$, ID_HPSELCODE2, "8"
  217.     ENDIF
  218.  
  219.     ''*** display status
  220.  
  221.     RecalcPath
  222.     SetDriveStatus
  223.  
  224. ''*****************************************************************************
  225. ''                  _CUSTINST
  226. ''*****************************************************************************
  227. _CUSTINST:
  228.  
  229.     ''*** Display IDD_CUSTINST dialog
  230.  
  231.     sz$ = UIStartDlg(szCuiDll$, IDD_CUSTINST, "FCustInstDlgProc",